<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>LibTools: Client类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">LibTools
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.16 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','搜索');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pri-methods">Private 成员函数</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="#friends">友元</a> &#124;
<a href="class_client-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">Client类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_client_8h_source.html">Client.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:afb79191c921f4055e98a1630a328a850"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#afb79191c921f4055e98a1630a328a850">Client</a> ()</td></tr>
<tr class="separator:afb79191c921f4055e98a1630a328a850"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fabc562003537af15d94c77ca52158f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a5fabc562003537af15d94c77ca52158f">Client</a> (<a class="el" href="class_c_basic_service.html">CBasicService</a> *service)</td></tr>
<tr class="memdesc:a5fabc562003537af15d94c77ca52158f"><td class="mdescLeft">&#160;</td><td class="mdescRight">初始化client类，并设置服务类  <a href="class_client.html#a5fabc562003537af15d94c77ca52158f">更多...</a><br /></td></tr>
<tr class="separator:a5fabc562003537af15d94c77ca52158f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a840e519ca781888cbd54181572ebe3a7"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a840e519ca781888cbd54181572ebe3a7">~Client</a> ()</td></tr>
<tr class="separator:a840e519ca781888cbd54181572ebe3a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a057f67d78d95863dc2667270341d95c8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a057f67d78d95863dc2667270341d95c8">GetType</a> ()</td></tr>
<tr class="memdesc:a057f67d78d95863dc2667270341d95c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取类型  <a href="class_client.html#a057f67d78d95863dc2667270341d95c8">更多...</a><br /></td></tr>
<tr class="separator:a057f67d78d95863dc2667270341d95c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9532ae1d6478f85101f0d2e99b2b1703"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a9532ae1d6478f85101f0d2e99b2b1703">GetName</a> ()</td></tr>
<tr class="memdesc:a9532ae1d6478f85101f0d2e99b2b1703"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取类型名称  <a href="class_client.html#a9532ae1d6478f85101f0d2e99b2b1703">更多...</a><br /></td></tr>
<tr class="separator:a9532ae1d6478f85101f0d2e99b2b1703"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7908db69b4f09eebe469fc69ff0e0c42"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a7908db69b4f09eebe469fc69ff0e0c42">ReadComplete</a> (unsigned <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a> dealSize, const char *msg)</td></tr>
<tr class="memdesc:a7908db69b4f09eebe469fc69ff0e0c42"><td class="mdescLeft">&#160;</td><td class="mdescRight">读完成处理函数  <a href="class_client.html#a7908db69b4f09eebe469fc69ff0e0c42">更多...</a><br /></td></tr>
<tr class="separator:a7908db69b4f09eebe469fc69ff0e0c42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a812ce38df4b1cd81b2b057733f998f49"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a812ce38df4b1cd81b2b057733f998f49">WriteComplete</a> (unsigned <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a> dealSize, const char *msg)</td></tr>
<tr class="memdesc:a812ce38df4b1cd81b2b057733f998f49"><td class="mdescLeft">&#160;</td><td class="mdescRight">写完成处理函数  <a href="class_client.html#a812ce38df4b1cd81b2b057733f998f49">更多...</a><br /></td></tr>
<tr class="separator:a812ce38df4b1cd81b2b057733f998f49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a51b4121807ea860a242a86cfb9e9ab"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a3a51b4121807ea860a242a86cfb9e9ab">TimeoutComplete</a> (const char *msg)</td></tr>
<tr class="memdesc:a3a51b4121807ea860a242a86cfb9e9ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">超时处理  <a href="class_client.html#a3a51b4121807ea860a242a86cfb9e9ab">更多...</a><br /></td></tr>
<tr class="separator:a3a51b4121807ea860a242a86cfb9e9ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace69bff65ba9f595115c1b80e10f687c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#ace69bff65ba9f595115c1b80e10f687c">SetSocketOpt</a> (<a class="el" href="class_c_tcp_io_socket.html">CTcpIoSocket</a> *s)</td></tr>
<tr class="memdesc:ace69bff65ba9f595115c1b80e10f687c"><td class="mdescLeft">&#160;</td><td class="mdescRight">设置套接字选项, 派生类可重写此函数以设置更多的套接字选项  <a href="class_client.html#ace69bff65ba9f595115c1b80e10f687c">更多...</a><br /></td></tr>
<tr class="separator:ace69bff65ba9f595115c1b80e10f687c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7eedb09b405e65dfdb88700d35d7b382"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a7eedb09b405e65dfdb88700d35d7b382">GetSocket</a> () const</td></tr>
<tr class="memdesc:a7eedb09b405e65dfdb88700d35d7b382"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取socket描述符  <a href="class_client.html#a7eedb09b405e65dfdb88700d35d7b382">更多...</a><br /></td></tr>
<tr class="separator:a7eedb09b405e65dfdb88700d35d7b382"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aceeb18e407bb39e5368fa2ab27d66a88"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#aceeb18e407bb39e5368fa2ab27d66a88">GetClientIden</a> () const</td></tr>
<tr class="memdesc:aceeb18e407bb39e5368fa2ab27d66a88"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取客户端唯一标识  <a href="class_client.html#aceeb18e407bb39e5368fa2ab27d66a88">更多...</a><br /></td></tr>
<tr class="separator:aceeb18e407bb39e5368fa2ab27d66a88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f2e8a7927adb30f14a28dc6d606e941"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_sock_tools_8h.html#ac7875a7f6984241a06892f7041b4d30a">SOCKIDEN</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a8f2e8a7927adb30f14a28dc6d606e941">GetSocketIden</a> () const</td></tr>
<tr class="memdesc:a8f2e8a7927adb30f14a28dc6d606e941"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取socket id  <a href="class_client.html#a8f2e8a7927adb30f14a28dc6d606e941">更多...</a><br /></td></tr>
<tr class="separator:a8f2e8a7927adb30f14a28dc6d606e941"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:a95dc32ad76a8bde7a525408d03b842ed"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a95dc32ad76a8bde7a525408d03b842ed">Start</a> (void *invoker)</td></tr>
<tr class="memdesc:a95dc32ad76a8bde7a525408d03b842ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">开始任务，继承者可实现此函数进行处理  <a href="class_client.html#a95dc32ad76a8bde7a525408d03b842ed">更多...</a><br /></td></tr>
<tr class="separator:a95dc32ad76a8bde7a525408d03b842ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37839a1150d07286be0f8c2c06b58ba0"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a37839a1150d07286be0f8c2c06b58ba0">PostRecv</a> (char *buff, size_t size)</td></tr>
<tr class="memdesc:a37839a1150d07286be0f8c2c06b58ba0"><td class="mdescLeft">&#160;</td><td class="mdescRight">投递读  <a href="class_client.html#a37839a1150d07286be0f8c2c06b58ba0">更多...</a><br /></td></tr>
<tr class="separator:a37839a1150d07286be0f8c2c06b58ba0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55414f48e08b0aaaec28ff8086f21c30"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a55414f48e08b0aaaec28ff8086f21c30">PostWrite</a> (const char *buff, size_t size)</td></tr>
<tr class="memdesc:a55414f48e08b0aaaec28ff8086f21c30"><td class="mdescLeft">&#160;</td><td class="mdescRight">投递写  <a href="class_client.html#a55414f48e08b0aaaec28ff8086f21c30">更多...</a><br /></td></tr>
<tr class="separator:a55414f48e08b0aaaec28ff8086f21c30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9714e538888d94b2c9c2acc1a4f4a68"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#aa9714e538888d94b2c9c2acc1a4f4a68">Post</a> (<a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>(*complete)(void *), void *invoker)</td></tr>
<tr class="memdesc:aa9714e538888d94b2c9c2acc1a4f4a68"><td class="mdescLeft">&#160;</td><td class="mdescRight">异步投递一个完成  <a href="class_client.html#aa9714e538888d94b2c9c2acc1a4f4a68">更多...</a><br /></td></tr>
<tr class="separator:aa9714e538888d94b2c9c2acc1a4f4a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf6a8239f1f36ef898d289860d7dacb3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#aaf6a8239f1f36ef898d289860d7dacb3">Close</a> ()</td></tr>
<tr class="memdesc:aaf6a8239f1f36ef898d289860d7dacb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">关闭客户端  <a href="class_client.html#aaf6a8239f1f36ef898d289860d7dacb3">更多...</a><br /></td></tr>
<tr class="separator:aaf6a8239f1f36ef898d289860d7dacb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfe1866466f5be9eca92dd6319eb56c1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#adfe1866466f5be9eca92dd6319eb56c1">SetTimeout</a> (const <a class="el" href="class_c_time_base.html">CTimeBase</a> &amp;t)</td></tr>
<tr class="memdesc:adfe1866466f5be9eca92dd6319eb56c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">设置超时,派生类可以重写此功能以便重设  <a href="class_client.html#adfe1866466f5be9eca92dd6319eb56c1">更多...</a><br /></td></tr>
<tr class="separator:adfe1866466f5be9eca92dd6319eb56c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a653283b5bd6d57c855b32eeaea0ebfd4"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_c_machine_time.html">CMachineTime</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a653283b5bd6d57c855b32eeaea0ebfd4">StartTime</a> (<a class="el" href="class_c_machine_time.html">CMachineTime</a> &amp;t)</td></tr>
<tr class="memdesc:a653283b5bd6d57c855b32eeaea0ebfd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取定时器起始时间  <a href="class_client.html#a653283b5bd6d57c855b32eeaea0ebfd4">更多...</a><br /></td></tr>
<tr class="separator:a653283b5bd6d57c855b32eeaea0ebfd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a199f02fb548197610325ffad0bf0946b"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a199f02fb548197610325ffad0bf0946b">ResetTimer</a> ()</td></tr>
<tr class="memdesc:a199f02fb548197610325ffad0bf0946b"><td class="mdescLeft">&#160;</td><td class="mdescRight">重置定时器  <a href="class_client.html#a199f02fb548197610325ffad0bf0946b">更多...</a><br /></td></tr>
<tr class="separator:a199f02fb548197610325ffad0bf0946b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private 成员函数</h2></td></tr>
<tr class="memitem:a7117985a55711ea1e6f9eee8e91221c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a7117985a55711ea1e6f9eee8e91221c7">delete_class_copy_operator</a> (<a class="el" href="class_client.html">Client</a>)</td></tr>
<tr class="separator:a7117985a55711ea1e6f9eee8e91221c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
静态 Private 成员函数</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">内部执行函数</div></td></tr>
<tr class="memitem:ab456001d31b45d928002a1a9b75990b4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#ab456001d31b45d928002a1a9b75990b4">_ReadComplete</a> (char *data, <a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> dwSize, <a class="el" href="class_c_sock_error.html">CSockError</a> ec, void *invoker)</td></tr>
<tr class="separator:ab456001d31b45d928002a1a9b75990b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d8756d14bc296e6fb7e4cfdb10bd888"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a7d8756d14bc296e6fb7e4cfdb10bd888">_WriteComplete</a> (char *data, <a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> dwSize, <a class="el" href="class_c_sock_error.html">CSockError</a> ec, void *invoker)</td></tr>
<tr class="separator:a7d8756d14bc296e6fb7e4cfdb10bd888"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa744595a1b6ac4625c1becccc070fdf8"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#aa744595a1b6ac4625c1becccc070fdf8">_PostComplete</a> (char *data, <a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> dwSize, <a class="el" href="class_c_sock_error.html">CSockError</a> ec, void *invoker)</td></tr>
<tr class="separator:aa744595a1b6ac4625c1becccc070fdf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae044429f6533cd0c275f58a2aeef5a1c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#ae044429f6533cd0c275f58a2aeef5a1c">_TimeoutComplete</a> (<a class="el" href="class_c_sock_error.html">CSockError</a> ec, void *invoker)</td></tr>
<tr class="separator:ae044429f6533cd0c275f58a2aeef5a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:ac9ef3d3342a564f93d6d94ee795a28c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_c_tcp_io_socket.html">CTcpIoSocket</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#ac9ef3d3342a564f93d6d94ee795a28c0">_cliSock</a></td></tr>
<tr class="separator:ac9ef3d3342a564f93d6d94ee795a28c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeed5abe9b4741420e5abe29b42c4f621"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_c_timer.html">CTimer</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#aeed5abe9b4741420e5abe29b42c4f621">_timer</a></td></tr>
<tr class="separator:aeed5abe9b4741420e5abe29b42c4f621"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4889e8635ac9c85685cca164608dc4f8"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a4889e8635ac9c85685cca164608dc4f8">_invoker</a></td></tr>
<tr class="separator:a4889e8635ac9c85685cca164608dc4f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab206b489dcd55b5397b6360b62dbb22e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#ab206b489dcd55b5397b6360b62dbb22e">_isClose</a></td></tr>
<tr class="separator:ab206b489dcd55b5397b6360b62dbb22e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5922d4b508779e8788fdbd3a6d137b01"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_service.html">Service</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a5922d4b508779e8788fdbd3a6d137b01">_service</a></td></tr>
<tr class="separator:a5922d4b508779e8788fdbd3a6d137b01"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
友元</h2></td></tr>
<tr class="memitem:ac2055578ac48afabe5af487878450f68"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#ac2055578ac48afabe5af487878450f68">Server</a></td></tr>
<tr class="separator:ac2055578ac48afabe5af487878450f68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1570a30ef48c7e3c947d66d00072375"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#ab1570a30ef48c7e3c947d66d00072375">ClientServer</a></td></tr>
<tr class="separator:ab1570a30ef48c7e3c947d66d00072375"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6474ceb8669761e879329b39c3afb899"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_client.html#a6474ceb8669761e879329b39c3afb899">Service</a></td></tr>
<tr class="separator:a6474ceb8669761e879329b39c3afb899"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock">
<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00012">12</a> 行定义.</p>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="afb79191c921f4055e98a1630a328a850"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb79191c921f4055e98a1630a328a850">&#9670;&nbsp;</a></span>Client() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a201ce692c9dca6599e5c12d00167419b">DEF_BEG_LIBTOOLS</a> Client::Client </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00013">13</a> 行定义.</p>

</div>
</div>
<a id="a5fabc562003537af15d94c77ca52158f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5fabc562003537af15d94c77ca52158f">&#9670;&nbsp;</a></span>Client() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Client::Client </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_basic_service.html">CBasicService</a> *&#160;</td>
          <td class="paramname"><em>service</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>初始化client类，并设置服务类 </p>

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00017">17</a> 行定义.</p>

</div>
</div>
<a id="a840e519ca781888cbd54181572ebe3a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a840e519ca781888cbd54181572ebe3a7">&#9670;&nbsp;</a></span>~Client()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Client::~Client </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00022">22</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="aa744595a1b6ac4625c1becccc070fdf8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa744595a1b6ac4625c1becccc070fdf8">&#9670;&nbsp;</a></span>_PostComplete()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> Client::_PostComplete </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td>
          <td class="paramname"><em>dwSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_error.html">CSockError</a>&#160;</td>
          <td class="paramname"><em>ec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00059">59</a> 行定义.</p>

</div>
</div>
<a id="ab456001d31b45d928002a1a9b75990b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab456001d31b45d928002a1a9b75990b4">&#9670;&nbsp;</a></span>_ReadComplete()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> Client::_ReadComplete </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td>
          <td class="paramname"><em>dwSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_error.html">CSockError</a>&#160;</td>
          <td class="paramname"><em>ec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00028">28</a> 行定义.</p>

</div>
</div>
<a id="ae044429f6533cd0c275f58a2aeef5a1c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae044429f6533cd0c275f58a2aeef5a1c">&#9670;&nbsp;</a></span>_TimeoutComplete()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> Client::_TimeoutComplete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_sock_error.html">CSockError</a>&#160;</td>
          <td class="paramname"><em>ec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00065">65</a> 行定义.</p>

</div>
</div>
<a id="a7d8756d14bc296e6fb7e4cfdb10bd888"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d8756d14bc296e6fb7e4cfdb10bd888">&#9670;&nbsp;</a></span>_WriteComplete()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> Client::_WriteComplete </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td>
          <td class="paramname"><em>dwSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_error.html">CSockError</a>&#160;</td>
          <td class="paramname"><em>ec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00051">51</a> 行定义.</p>

</div>
</div>
<a id="aaf6a8239f1f36ef898d289860d7dacb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf6a8239f1f36ef898d289860d7dacb3">&#9670;&nbsp;</a></span>Close()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Client::Close </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>关闭客户端 </p>

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00104">104</a> 行定义.</p>

</div>
</div>
<a id="a7117985a55711ea1e6f9eee8e91221c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7117985a55711ea1e6f9eee8e91221c7">&#9670;&nbsp;</a></span>delete_class_copy_operator()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Client::delete_class_copy_operator </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_client.html">Client</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="aceeb18e407bb39e5368fa2ab27d66a88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aceeb18e407bb39e5368fa2ab27d66a88">&#9670;&nbsp;</a></span>GetClientIden()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string Client::GetClientIden </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>获取客户端唯一标识 </p>

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00046">46</a> 行定义.</p>

</div>
</div>
<a id="a9532ae1d6478f85101f0d2e99b2b1703"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9532ae1d6478f85101f0d2e99b2b1703">&#9670;&nbsp;</a></span>GetName()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* Client::GetName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>获取类型名称 </p>

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00032">32</a> 行定义.</p>

</div>
</div>
<a id="a7eedb09b405e65dfdb88700d35d7b382"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7eedb09b405e65dfdb88700d35d7b382">&#9670;&nbsp;</a></span>GetSocket()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a> Client::GetSocket </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>获取socket描述符 </p>

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00036">36</a> 行定义.</p>

</div>
</div>
<a id="a8f2e8a7927adb30f14a28dc6d606e941"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f2e8a7927adb30f14a28dc6d606e941">&#9670;&nbsp;</a></span>GetSocketIden()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_sock_tools_8h.html#ac7875a7f6984241a06892f7041b4d30a">SOCKIDEN</a> Client::GetSocketIden </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>获取socket id </p>

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00041">41</a> 行定义.</p>

</div>
</div>
<a id="a057f67d78d95863dc2667270341d95c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a057f67d78d95863dc2667270341d95c8">&#9670;&nbsp;</a></span>GetType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a> Client::GetType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>获取类型 </p>

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00029">29</a> 行定义.</p>

</div>
</div>
<a id="aa9714e538888d94b2c9c2acc1a4f4a68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9714e538888d94b2c9c2acc1a4f4a68">&#9670;&nbsp;</a></span>Post()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool Client::Post </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>(*)(void *)&#160;</td>
          <td class="paramname"><em>complete</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>异步投递一个完成 </p>

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00092">92</a> 行定义.</p>

</div>
</div>
<a id="a37839a1150d07286be0f8c2c06b58ba0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37839a1150d07286be0f8c2c06b58ba0">&#9670;&nbsp;</a></span>PostRecv()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Client::PostRecv </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>投递读 </p>

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00078">78</a> 行定义.</p>

</div>
</div>
<a id="a55414f48e08b0aaaec28ff8086f21c30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55414f48e08b0aaaec28ff8086f21c30">&#9670;&nbsp;</a></span>PostWrite()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Client::PostWrite </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>投递写 </p>

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00085">85</a> 行定义.</p>

</div>
</div>
<a id="a7908db69b4f09eebe469fc69ff0e0c42"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7908db69b4f09eebe469fc69ff0e0c42">&#9670;&nbsp;</a></span>ReadComplete()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a> Client::ReadComplete </td>
          <td>(</td>
          <td class="paramtype">unsigned <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a>&#160;</td>
          <td class="paramname"><em>dealSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>msg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>读完成处理函数 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">dealSize</td><td>读取长度 </td></tr>
    <tr><td class="paramname">msg</td><td>若发生错误，这里为错误描述信息 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>0成功，失败返回其它值 </dd></dl>
<dl class="section remark"><dt>备注</dt><dd>派生类实现此方法 </dd></dl>

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00041">41</a> 行定义.</p>

</div>
</div>
<a id="a199f02fb548197610325ffad0bf0946b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a199f02fb548197610325ffad0bf0946b">&#9670;&nbsp;</a></span>ResetTimer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool Client::ResetTimer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>重置定时器 </p>

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00133">133</a> 行定义.</p>

</div>
</div>
<a id="ace69bff65ba9f595115c1b80e10f687c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace69bff65ba9f595115c1b80e10f687c">&#9670;&nbsp;</a></span>SetSocketOpt()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void Client::SetSocketOpt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_tcp_io_socket.html">CTcpIoSocket</a> *&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>设置套接字选项, 派生类可重写此函数以设置更多的套接字选项 </p>

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00061">61</a> 行定义.</p>

</div>
</div>
<a id="adfe1866466f5be9eca92dd6319eb56c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adfe1866466f5be9eca92dd6319eb56c1">&#9670;&nbsp;</a></span>SetTimeout()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Client::SetTimeout </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_c_time_base.html">CTimeBase</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>设置超时,派生类可以重写此功能以便重设 </p>

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00116">116</a> 行定义.</p>

</div>
</div>
<a id="a95dc32ad76a8bde7a525408d03b842ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95dc32ad76a8bde7a525408d03b842ed">&#9670;&nbsp;</a></span>Start()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Client::Start </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>开始任务，继承者可实现此函数进行处理 </p>

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00026">26</a> 行定义.</p>

</div>
</div>
<a id="a653283b5bd6d57c855b32eeaea0ebfd4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a653283b5bd6d57c855b32eeaea0ebfd4">&#9670;&nbsp;</a></span>StartTime()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_machine_time.html">CMachineTime</a> * Client::StartTime </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_machine_time.html">CMachineTime</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>获取定时器起始时间 </p>

<p class="definition">在文件 <a class="el" href="_client_8cpp_source.html">Client.cpp</a> 第 <a class="el" href="_client_8cpp_source.html#l00123">123</a> 行定义.</p>

</div>
</div>
<a id="a3a51b4121807ea860a242a86cfb9e9ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a51b4121807ea860a242a86cfb9e9ab">&#9670;&nbsp;</a></span>TimeoutComplete()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a> Client::TimeoutComplete </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>msg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>超时处理 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">msg</td><td>若发生错误，这里为错误描述信息 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>0成功，失败返回其它值 </dd></dl>
<dl class="section remark"><dt>备注</dt><dd>派生类实现此方法 </dd></dl>

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00058">58</a> 行定义.</p>

</div>
</div>
<a id="a812ce38df4b1cd81b2b057733f998f49"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a812ce38df4b1cd81b2b057733f998f49">&#9670;&nbsp;</a></span>WriteComplete()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a> Client::WriteComplete </td>
          <td>(</td>
          <td class="paramtype">unsigned <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a>&#160;</td>
          <td class="paramname"><em>dealSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>msg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>写完成处理函数 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">dealSize</td><td>发送成功的数据长度 </td></tr>
    <tr><td class="paramname">msg</td><td>若发生错误，这里为错误描述信息 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>0成功，失败返回其它值 </dd></dl>
<dl class="section remark"><dt>备注</dt><dd>派生类实现此方法 </dd></dl>

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00050">50</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">友元及相关函数文档</h2>
<a id="ab1570a30ef48c7e3c947d66d00072375"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1570a30ef48c7e3c947d66d00072375">&#9670;&nbsp;</a></span>ClientServer</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="class_client_server.html">ClientServer</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00109">109</a> 行定义.</p>

</div>
</div>
<a id="ac2055578ac48afabe5af487878450f68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2055578ac48afabe5af487878450f68">&#9670;&nbsp;</a></span>Server</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="class_server.html">Server</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00108">108</a> 行定义.</p>

</div>
</div>
<a id="a6474ceb8669761e879329b39c3afb899"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6474ceb8669761e879329b39c3afb899">&#9670;&nbsp;</a></span>Service</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="class_service.html">Service</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00110">110</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">类成员变量说明</h2>
<a id="ac9ef3d3342a564f93d6d94ee795a28c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9ef3d3342a564f93d6d94ee795a28c0">&#9670;&nbsp;</a></span>_cliSock</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt;<a class="el" href="class_c_tcp_io_socket.html">CTcpIoSocket</a>&gt; Client::_cliSock</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00103">103</a> 行定义.</p>

</div>
</div>
<a id="a4889e8635ac9c85685cca164608dc4f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4889e8635ac9c85685cca164608dc4f8">&#9670;&nbsp;</a></span>_invoker</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void* Client::_invoker</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00105">105</a> 行定义.</p>

</div>
</div>
<a id="ab206b489dcd55b5397b6360b62dbb22e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab206b489dcd55b5397b6360b62dbb22e">&#9670;&nbsp;</a></span>_isClose</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool Client::_isClose</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00106">106</a> 行定义.</p>

</div>
</div>
<a id="a5922d4b508779e8788fdbd3a6d137b01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5922d4b508779e8788fdbd3a6d137b01">&#9670;&nbsp;</a></span>_service</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_service.html">Service</a>* Client::_service</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00107">107</a> 行定义.</p>

</div>
</div>
<a id="aeed5abe9b4741420e5abe29b42c4f621"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeed5abe9b4741420e5abe29b42c4f621">&#9670;&nbsp;</a></span>_timer</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt;<a class="el" href="class_c_timer.html">CTimer</a>&gt; Client::_timer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_client_8h_source.html">Client.h</a> 第 <a class="el" href="_client_8h_source.html#l00104">104</a> 行定义.</p>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>H:/project/LibTools/src/framework/tcp/framework/<a class="el" href="_client_8h_source.html">Client.h</a></li>
<li>H:/project/LibTools/src/framework/tcp/framework/<a class="el" href="_client_8cpp_source.html">Client.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者 &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16
</small></address>
</body>
</html>
